style_values_lookup_for_state (GtkStyleContext *context,
GtkStateFlags state)
{
+ GtkCssNodeDeclaration *decl;
GtkCssComputedValues *values;
if (gtk_css_node_declaration_get_state (context->priv->info->decl) == state)
return g_object_ref (style_values_lookup (context));
- gtk_style_context_save (context);
- gtk_style_context_set_state (context, state);
- values = g_object_ref (style_values_lookup (context));
- gtk_style_context_restore (context);
+ decl = gtk_css_node_declaration_ref (context->priv->info->decl);
+ gtk_css_node_declaration_set_state (&decl, state);
+ values = _gtk_css_computed_values_new ();
+ build_properties (context, values, decl, NULL);
+ gtk_css_node_declaration_unref (decl);
return values;
}